在資料庫中,「關聯」是用來描述兩個資料表如何彼此關聯或被連接的方式。
雖然資料表可以獨立存在,但透過建立正確的關聯,可以提升資料的整體一致性與品質。
一對一(One-to-One)
表示「一個 X 只對應到一個 Y」。
範例:
一個人只會有一位配偶(如一位先生或一位太太)。
一對多(One-to-Many)
這是最常見的關聯型態,意思是「一個 X 對應到多個 Y」。
範例:
一位老師(Teacher)可以教授多門科目(Subjects),但一門科目只能對應到一位老師。
註:雖然在現實中可能有一門課有多位老師,但這裡為了簡化,假設每門課只有一位老師。
多對多(Many-to-Many)
多對多的關聯在實際應用中很常見,但在資料庫設計中並不理想,因為不容易直接管理這種關係。
範例:
一位學生可以修多門科目,一門科目也可以有多位學生。
解法:
為了妥善儲存這樣的資料,我們會使用「中介表(Joining Table)」來拆解成兩個一對多的關係。
例如:
建立一張 student_subject 的中介表來記錄學生與科目的對應關係。
自我關聯(Self-Relationship)
自我關聯是指一張資料表與自身的其他紀錄建立關聯。
範例:
員工(Employee)有一位主管(Manager),而主管本身也是一位員工,甚至可能還有上級主管。
這時,我們不會另外為主管建立獨立的資料表,而是透過同一張 employees 表來引用自己的其他紀錄。
關聯是資料表(或稱實體)彼此之間的連結方式,對於確保資料一致性與支援複雜資料結構非常重要。
常見的四種關聯類型:
一對一(One-to-One)
一對多(One-to-Many)
多對多(Many-to-Many,需透過中介表)
自我關聯(Self-Relationship)